iOS アプリ設計パターン入門
https://peaks-img.s3-ap-northeast-1.amazonaws.com/ios_architecture_book_cover_alpha.png
感想 nobuoka.icon
iOS アプリに限らず、アプリケーション設計についての歴史や思想の概要を学ぶには良い本だった
特に 1 部が良かった
歴史的ないろいろなアーキテクチャパターンの説明とか
一方で、iOS 固有の話でいうと、どのようにモジュール分割を実現するか、というような話がないのは残念
個人的にはソフトウェア設計におけるレイヤ分割だったり機能ごとの分割にモジュール分割が必要だと思っているので、どのようにモジュール分割を実践するのか、というような話は欲しかった
内容メモ
1 部 設計を知る
複雑な問題をより単純な問題に切り分けて考えるため、システムもモジュールで構成されている必要 設計パターン (再現性のある問題に対する共通の解決策) が強い味方 本書におけるアーキテクチャは、アプリにおける大まかなレイヤー分割の捉え方 2 章 設計にパターンを適用する前に
正しい名前に向き合う
アジャイル開発では、設計の原則を適用して問題を分析する nobuoka.icon KISS のことを 「Keep it simple, stupid」 じゃなくて 「Keep it simple, small」 って言ってるの、はじめて見た 適切な設計の判断のためには変更可能性がどこにあるか知る必要 パターンが最初にあるのではなく、コードを修正する過程でパターンを見出す
問題領域を理解するためにパターンを使う
4 章 アーキテクチャのパターンを鳥瞰する (関義隆) iOS のアーキテクチャと呼ばれるものは 2 種類あり、本書では以下のように呼ぶ
モバイルアプリにおいて重要な画面遷移
2 部 iOS アプリのための設計パターン
コンポーネント間のデータ同期方法 2 つ
Presenter はたいてい View にたいして 1 つ作成
11 章 アプリの起動経路 - Appliation Coordinator の導入 (松館大輝) 12 章 画面遷移のパターン - Router の導入 (田中賢治) 13 章 第 2 部のまとめ - アーキテクチャの選定基準 (松館大輝) アーキテクチャパターンをどのような基準で選ぶべきか?
アプリに求められるような機能要件、非機能要件
チームの熟練度やリードできる人の存在
そのアーキテクチャパターンを好きになれるか
そのアーキテクチャパターンが目的にならないように
3 部 設計をサービスに導入する
15 章 Redux の導入例 - 大規模アプリケーションに Redux を導入する (杉上洋平) 差分アルゴリズムによる view の部分更新